package ModelLayer;
import java.util.ArrayList;


/**
 * Write a description of class KundeContainer here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class KundeContainer
{
    private ArrayList<Kunde> nyKunde;
    private static KundeContainer instance;

    /**
     * Constructor for objects of class KundeContainer
     */
    private KundeContainer()
    {
        nyKunde = new ArrayList<Kunde>();
    }

    /**
     * Denne metode laver en singleton.
     * dette er med til at sikre at der kun bliver oprettet et enkelt objekt at klassen
     */
    public static KundeContainer getInstance()
    {
        if(instance == null)
        {
            instance = new KundeContainer();
        }
        return instance;
    }
    
    /**
     * Denne metode gør det muligt at tilf�je objekter af Kunde til listen
     * 
     */
    public void tilfoejKunde(Kunde kunde)
    {
        nyKunde.add(kunde);
    }
    
    /**
     * denne metode g�r det muligt at fjerne objekter af Kunde fra listen.
     * man indtaster kundens ID som s�geparameter, hvor s�gemetoden bliver kaldet
     */
    public void fjernKunde(int kundeId)
    {
        Kunde k = findKunde(kundeId);
        nyKunde.remove(k);
    }
    
    /**
     * denne metode er en s�gemetode
     * s�geparameteren er kundens ID
     * man f�r returnet kundeobjektet 
     */
    public Kunde findKunde(int kundeId)
    {
        int index = 0;
        boolean found = false;
        while(index < nyKunde.size() && !found)
        {
            if(kundeId == (nyKunde.get(index).getKundeId()))
            {
                found = true;
           
            }
            else
            {
                index ++;
            }
        }
        return nyKunde.get(index);
    }
    
     /**
     * Bruges til at list hele Kunde arraylisten.
     */
    public ArrayList<Kunde> listAlleKunder()
    {
        return nyKunde;
    }
}
